
#ifndef _HUD_H_
#define _HUD_H_

#include "Minimap.h"
#include "Utils/Vector2D.h"
#include "Graphics/Font.h"
#include "Console.h"


class HUD {
  public:
    static HUD& instance(void);

    void update(void);

    // call this as the last world render event, in world space.
    void renderCursor(void);
    void renderCursorOrtho(void);

    // call this after all of the world render events.
    void renderHUD(void);

    Vector2D getCursorWorldPosition(void);

  private:

    Vector2D cursor_world_pos;
    const float csize;
    Minimap *minimap;
    Font hud_font;
    Console console;


    void renderScore(void);
    void renderHealthBar(void);
    void renderEnergyBar(void);

    // Private constructors since this is a singleton
    HUD();
    HUD(const HUD&);
    HUD& operator=(const HUD&);
    ~HUD();
};


#endif

